package com.ly.heart.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-收料通知单物料明细对象 erp_king_receive_notice_material_info
 *
 * @author cxl
 * @date 2024-08-09
 */
@TableName ("erp_king_receive_notice_material_info")
@ApiModel (value = "金蝶-收料通知单物料明细", description = "金蝶-收料通知单物料明细")
@Data
public class KingReceiveNoticeMaterialEntity{

    /** 主键id */
    @TableId (type = IdType.INPUT)
    private String id;

    /** 收料通知单主表id */
    @ApiModelProperty ("收料通知单主表id")
    @TableField ("receive_notice_id")
    @Excel (name = "收料通知单主表id")
    private String receiveNoticeId;

    /** 源单类型(0采购订单) */
    @ApiModelProperty ("源单类型(0采购订单)")
    @TableField ("source_type")
    @Excel (name = "源单类型(0采购订单)")
    private String sourceType;

    @ApiModelProperty ("关联id(选单时选采购订单就带采购订单id")
    @TableField ("relation_id")
    private String relationId;

    /** 关联订单code */
    @ApiModelProperty ("关联订单code")
    @TableField ("relation_code")
    @Excel (name = "关联订单code")
    private String relationCode;

    /** 源单物料明细id */
    @ApiModelProperty ("源单物料明细id")
    @TableField ("source_material_detail_id")
    @Excel (name = "源单物料明细id")
    private String sourceMaterialDetailId;

    /** 批号 */
    @ApiModelProperty ("批号")
    @TableField ("batch_num")
    @Excel (name = "批号")
    private String batchNum;

    /** 行号 */
    @ApiModelProperty ("行号")
    @TableField ("line_number")
    @Excel (name = "行号")
    private String lineNumber;

    /** 物料id */
    @ApiModelProperty ("物料id")
    @TableField ("material_id")
    @Excel (name = "物料id")
    private String materialId;

    /** 物料编码 */
    @ApiModelProperty ("物料编码")
    @TableField ("material_code")
    @Excel (name = "物料编码")
    private String materialCode;

    /** 物料名称 */
    @ApiModelProperty ("物料名称")
    @TableField ("material_name")
    @Excel (name = "物料名称")
    private String materialName;

    /** 收料单位 */
    @ApiModelProperty ("收料单位")
    @TableField ("receive_unit")
    @Excel (name = "收料单位")
    private String receiveUnit;

    @ApiModelProperty ("收料单位名称")
    @TableField(exist = false)
    private String receiveUnitName;

    /** 规格型号 */
    @ApiModelProperty ("规格型号")
    @TableField ("material_model")
    @Excel (name = "规格型号")
    private String materialModel;

    /** 交货数量 */
    @ApiModelProperty ("交货数量")
    @TableField ("delivery_num")
    @Excel (name = "交货数量")
    private String deliveryNum;

    /** 应交数量 */
    @ApiModelProperty ("应交数量")
    @TableField ("should_submit_num")
    @Excel (name = "应交数量")
    private String shouldSubmitNum;

    /** 预计到货日期 */
    @ApiModelProperty ("预计到货日期")
    @TableField ("except_arrival_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "预计到货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date exceptArrivalTime;

    /** 供应商交货数量 */
    @ApiModelProperty ("供应商交货数量")
    @TableField ("supplier_delivery_num")
    @Excel (name = "供应商交货数量")
    private String supplierDeliveryNum;

    /** 计价单位 */
    @ApiModelProperty ("计价单位")
    @TableField ("pricing_unit")
    @Excel (name = "计价单位")
    private String pricingUnit;

    @ApiModelProperty ("计价单位名称")
    @TableField(exist = false)
    private String pricingUnitName;

    /** 计价数量 */
    @ApiModelProperty ("计价数量")
    @TableField ("pricing_num")
    @Excel (name = "计价数量")
    private String pricingNum;

    /** 仓库id */
    @ApiModelProperty ("仓库id")
    @TableField ("warehouse_id")
    @Excel (name = "仓库id")
    private String warehouseId;

    /** 仓库编码 */
    @ApiModelProperty ("仓库编码")
    @TableField ("warehouse_code")
    @Excel (name = "仓库编码")
    private String warehouseCode;

    @ApiModelProperty ("仓库名称")
    @TableField(exist = false)
    private String warehouseName;

    /** 仓位 */
    @ApiModelProperty ("仓位")
    @TableField ("warehouse_position")
    @Excel (name = "仓位")
    private String warehousePosition;

    /** 库存状态(库存状态接口) */
    @ApiModelProperty ("库存状态(库存状态接口)")
    @TableField ("inventory_status")
    @Excel (name = "库存状态(库存状态接口)")
    private String inventoryStatus;

    @ApiModelProperty ("库存状态名称")
    @TableField(exist = false)
    private String inventoryStatusName;

    /** 拒收数量 */
    @ApiModelProperty ("拒收数量")
    @TableField ("rejected_num")
    @Excel (name = "拒收数量")
    private String rejectedNum;

    /** 拒收原因 */
    @ApiModelProperty ("拒收原因")
    @TableField ("rejected_reason")
    @Excel (name = "拒收原因")
    private String rejectedReason;

    /** 是否赠品 */
    @ApiModelProperty ("是否赠品")
    @TableField ("is_giveaway")
    @Excel (name = "是否赠品")
    private Boolean isGiveaway;

    /** 合同单号 */
    @ApiModelProperty ("合同单号")
    @TableField ("contract_code")
    @Excel (name = "合同单号")
    private String contractCode;

    /** 税率 */
    @ApiModelProperty ("税率")
    @TableField ("tax_rate")
    @Excel (name = "税率")
    private String taxRate;

    /** 单价 */
    @ApiModelProperty ("单价")
    @TableField ("price")
    @Excel (name = "单价")
    private String price;

    /** 含税单价 */
    @ApiModelProperty ("含税单价")
    @TableField ("contains_tax_price")
    @Excel (name = "含税单价")
    private String containsTaxPrice;

    /** 业务含税单价 */
    @ApiModelProperty ("业务含税单价")
    @TableField ("business_tax_price")
    @Excel (name = "业务含税单价")
    private String businessTaxPrice;

    /** 业务单价 */
    @ApiModelProperty ("业务单价")
    @TableField ("business_price")
    @Excel (name = "业务单价")
    private String businessPrice;

    /** 金额 */
    @ApiModelProperty ("金额")
    @TableField ("money_amount")
    @Excel (name = "金额")
    private String moneyAmount;

    /** 税额 */
    @ApiModelProperty ("税额")
    @TableField ("tax_amount")
    @Excel (name = "税额")
    private String taxAmount;

    /** 价税合计 */
    @ApiModelProperty ("价税合计")
    @TableField ("total_tax_price")
    @Excel (name = "价税合计")
    private String totalTaxPrice;

    /** 汇率 */
    @ApiModelProperty ("汇率")
    @TableField ("exchange_rate")
    @Excel (name = "汇率")
    private String exchangeTate;

    /** 税额(本位币) */
    @ApiModelProperty ("税额(本位币)")
    @TableField ("tax_amount_base")
    @Excel (name = "税额(本位币)")
    private String taxAmountBase;

    /** 金额（本位币） */
    @TableField ("amount_money_base")
    @ApiModelProperty ("金额（本位币）")
    @Excel (name = "金额（本位币）")
    private String amountMoneyBase;

    /** 价税合计(本位币) */
    @ApiModelProperty ("价税合计(本位币)")
    @TableField ("total_tax_price_base")
    @Excel (name = "价税合计(本位币)")
    private String totalTaxPriceBase;

    /** 验收比例 */
    @ApiModelProperty ("验收比例")
    @TableField ("check_rate")
    @Excel (name = "验收比例")
    private String checkRate;

    /** 库存单位 */
    @ApiModelProperty ("库存单位")
    @TableField ("inventory_unit")
    @Excel (name = "库存单位")
    private String inventoryUnit;

    @ApiModelProperty ("库存单位名称")
    @TableField(exist = false)
    private String inventoryUnitName;

    /** 库存单位数量 */
    @ApiModelProperty ("库存单位数量")
    @TableField ("inventory_unit_num")
    @Excel (name = "库存单位数量")
    private String inventoryUnitNum;

    /** 分录价目表 */
    @ApiModelProperty ("分录价目表")
    @TableField ("entry_price_list")
    @Excel (name = "分录价目表")
    private String entryPriceList;

    /** 行状态 */
    @ApiModelProperty ("行状态")
    @TableField ("line_status")
    @Excel (name = "行状态")
    private String lineStatus;

    /** 订单数量 */
    @ApiModelProperty ("订单数量")
    @TableField ("order_num")
    @Excel (name = "订单数量")
    private String orderNum;

    /** 不良品折让金额 */
    @ApiModelProperty ("不良品折让金额")
    @TableField ("defective_discount_amount")
    @Excel (name = "不良品折让金额")
    private String defectiveDiscountAmount;

    /** 入库关联不良品折让金额 */
    @ApiModelProperty ("入库关联不良品折让金额")
    @TableField ("inventory_defective_discount_amount")
    @Excel (name = "入库关联不良品折让金额")
    private String inventoryDefectiveDiscountAmount;

    /** 是否对账中 */
    @ApiModelProperty ("是否对账中")
    @TableField ("is_reconciliation")
    @Excel (name = "是否对账中")
    private String isReconciliation;

    /** 当前对账单号 */
    @ApiModelProperty ("当前对账单号")
    @TableField ("current_reconciliation_code")
    @Excel (name = "当前对账单号")
    private String currentReconciliationCode;

    /** 历史对账单号 */
    @ApiModelProperty ("历史对账单号")
    @TableField ("history_reconciliation_code")
    @Excel (name = "历史对账单号")
    private String historyReconciliationCode;

    /** 录入人 */
    @ApiModelProperty ("录入人")
    @TableField ("user_id")
    @Excel (name = "录入人")
    private String userId;

    /** 更新时间 */
    @ApiModelProperty ("更新时间")
    @TableField ("change_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date changeTime;

    /** 逻辑删除 */
    @TableLogic
    @ApiModelProperty ("逻辑删除")
    @TableField ("is_used")
    @Excel (name = "逻辑删除")
    private Integer isUsed;

    /** 创建时间 */
    @ApiModelProperty ("创建时间")
    @TableField ("create_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createTime;

    @ApiModelProperty("物料明细分录信息")
    @TableField(exist = false)
    private KingReceiveNoticeMaterialDetailEntity materialDetail;

}
